package mystudy
//结构体知识点
import "fmt"
// 定义一个人结构体
type persion struct{
	name string
	age int
	school string
}
// 定义结构体的函数
func (p persion) pprint(num int){
	fmt.Println(p.name, num)
}

func DemoStruct(){
	fmt.Println("------结构体------")
	// 声明结构体变量
	var p1 persion
	p1.name = "张三"
	p1.age = 19
	p1.school = "清华大学"
	fmt.Println(p1)
	// 声明方式2
	var p2 persion = persion{
		name:"里斯",
		age:18,
		school:"理工大学",
	}
	fmt.Println(p2)
	// 声明方式3
	var p3 = persion{
		name:"王五",
		age:21,
		school:"武汉大学",
	}
	fmt.Println(p3)
	// 声明方式4
	var p4 = persion{"王五",22,"武汉大学"}
	fmt.Println(p4)
	// 声明方式5
	var t *persion = new(persion)
	(*t).name="刘欣"
	(*t).age = 19
	(*t).school = "深圳大学"
	// go编译器简化了
	t.name = "liuliu"
	t.age = 22
	t.school = "湖北大学"
	fmt.Println(*t)
	// 声明方式6
	var p5 *persion = &persion{}
	p5.name = "p5"
	p5.age = 21
	p5.school = "阿里云大学"
	fmt.Println(*p5)
	// 结构体类型之间的转换
	p5.pprint(21)

}